1. Field of the Invention
The present invention relates generally to arbiter circuits, and in particular, to a method, apparatus, and article of manufacture for a soft error tolerant arbiter circuit.
2. Description of the Related Art
(Note: This application references a number of different publications as indicated throughout the specification by reference numbers enclosed in brackets, e.g., [x]. A list of these different publications ordered according to these reference numbers can be found below in the section entitled “References.” Each of these publications is incorporated by reference herein.)
The arbiter is a circuit which plays a small but crucial role in a quasi delay insensitive (QDI) design. Any time that an input is required from a source that cannot provide a complete handshake, such as an external interrupt, the question of metastability comes up when sampling the input. The standard arbiter is the solution to this problem. The arbiter is specified as having two inputs and two outputs, and for the most part, its job is to mirror the state of the inputs onto the outputs. The exception to this rule is that when the inputs are both set to a logical 1, exactly one of the two outputs will be raised to a 1.
FIG. 1 shows the implementation of the standard arbiter 100 of the prior art. The first stage 102 of the arbiter 100, called the bare arbiter 102, is a rough approximation of the desired result of an arbiter 100. The only problem is that when both inputs x 104 and y 106 become logical “ones” (1), it is possible for the (inverted) outputs s 108 and t 110 to both become close to logical “zeros” (0). The second stage 112 is a simple analog filter which typically corrects this problem.
The arbiter is a non-deterministic circuit. While this is exactly what is necessary to deal with the issue of meta-stability, it also means that the DD (duplicated double-checking) scheme, the standard method of making a QDI circuit SEU (single event upset, also known as a “soft error”) tolerant, cannot be applied. This DD scheme relies on making two copies of each circuit element, and only allowing the output of the elements to change when both elements can agree on the change. Any disagreement must be the result of a soft error, and will be resolved when the error passes. However, two arbiters given identical input can reach different outputs, which in the DD scheme, leads to a deadlock.
Accordingly, what is needed is an arbiter that is soft error tolerant.